﻿using System;

namespace Shuba.Model
{
    [Serializable]
    public class TopUpInfo
    {
        public TopUpInfo()
        {
        }

        public TopUpInfo
        (
            string CIF_NUMBER
            , string LOAN_NUMBER
            , string UNIT_CODE
            , string DEBITOR_NAME
            , string PRODUCT_CODE
            , double CURRENT_OS
            , double CURRENT_INSTALLMENT
            , double OFFER_PLAFON
            , double OFFER_INSTALLMENT
            , string OFFER_INTEREST
            , Int16 OFFER_TENOR
            , double OFFER_FRESH_MONEY
            , string PRIORITY
            , string JENIS_USAHA
            , string KODYA_KAB_BUSINESS
            , string KECAMATAN_BUSINESS
            , string KELURAHAN_BUSINESS
            , string ZIP_CODE_BUSINESS
            , string ADDRESS_BUSINESS
            , string MOBILE_PHONE
            , string OFFICE_PHONE
            , string RESIDENTIAL_PHONE
            , DateTime DATE_VISIT_PLAN
            , string ENTRY_BY
            , DateTime ENTRY_DATE
            , string UPDATE_BY
            , DateTime UPDATE_DATE
            , bool IS_DOWNLOADED
            , string DOWNLOAD_BY
            , DateTime DOWNLOAD_DATE
            , string PROSPECT_TYPE
            , string DEBTOR_TYPE
            , string CHANNELING
            , string EKSTERNAL
            , string REFERENSI
            , string IS_ASSIGNED
            , string ASSIGNED_TO
        )
        {
            this.CIF_NUMBER = CIF_NUMBER;
            this.LOAN_NUMBER = LOAN_NUMBER;
            this.UNIT_CODE = UNIT_CODE;
            this.DEBITOR_NAME = DEBITOR_NAME;
            this.PRODUCT_CODE = PRODUCT_CODE;
            this.CURRENT_OS = CURRENT_OS;
            this.CURRENT_INSTALLMENT = CURRENT_INSTALLMENT;
            this.OFFER_PLAFON = OFFER_PLAFON;
            this.OFFER_INSTALLMENT = OFFER_INSTALLMENT;
            this.OFFER_INTEREST = OFFER_INTEREST;
            this.OFFER_TENOR = OFFER_TENOR;
            this.OFFER_FRESH_MONEY = OFFER_FRESH_MONEY;
            this.PRIORITY = PRIORITY;
            this.JENIS_USAHA = JENIS_USAHA;
            this.KODYA_KAB_BUSINESS = KODYA_KAB_BUSINESS;
            this.KECAMATAN_BUSINESS = KECAMATAN_BUSINESS;
            this.KELURAHAN_BUSINESS = KELURAHAN_BUSINESS;
            this.ZIP_CODE_BUSINESS = ZIP_CODE_BUSINESS;
            this.ADDRESS_BUSINESS = ADDRESS_BUSINESS;
            this.MOBILE_PHONE = MOBILE_PHONE;
            this.OFFICE_PHONE = OFFICE_PHONE;
            this.RESIDENTIAL_PHONE = RESIDENTIAL_PHONE;
            this.DATE_VISIT_PLAN = DATE_VISIT_PLAN;
            this.ENTRY_BY = ENTRY_BY;
            this.ENTRY_DATE = ENTRY_DATE;
            this.UPDATE_BY = UPDATE_BY;
            this.UPDATE_DATE = UPDATE_DATE;
            this.IS_DOWNLOADED = IS_DOWNLOADED;
            this.DOWNLOAD_BY = DOWNLOAD_BY;
            this.DOWNLOAD_DATE = DOWNLOAD_DATE;
            this.PROSPECT_TYPE = PROSPECT_TYPE;
            this.DEBTOR_TYPE = DEBTOR_TYPE;
            this.CHANNELING = CHANNELING;
            this.EKSTERNAL = EKSTERNAL;
            this.REFERENSI = REFERENSI;
            this.IS_ASSIGNED = IS_ASSIGNED;
            this.ASSIGNED_TO = ASSIGNED_TO;
         }

        public TopUpInfo
        (
            string CIF_NUMBER
            , string LOAN_NUMBER
            , string UNIT_CODE
            , string DEBITOR_NAME
            , string PRODUCT_CODE
            , double CURRENT_OS
            , double CURRENT_INSTALLMENT
            , double OFFER_PLAFON
            , double OFFER_INSTALLMENT
            , string OFFER_INTEREST
            , Int16 OFFER_TENOR
            , double OFFER_FRESH_MONEY
            , string PRIORITY
            , string JENIS_USAHA
            , string KODYA_KAB_BUSINESS
            , string KECAMATAN_BUSINESS
            , string KELURAHAN_BUSINESS
            , string ZIP_CODE_BUSINESS
            , string ADDRESS_BUSINESS
            , string MOBILE_PHONE
            , string OFFICE_PHONE
            , string RESIDENTIAL_PHONE
            , DateTime DATE_VISIT_PLAN
            , string ENTRY_BY
            , DateTime ENTRY_DATE
            , string UPDATE_BY
            , DateTime UPDATE_DATE
            , bool IS_DOWNLOADED
            , string DOWNLOAD_BY
            , DateTime DOWNLOAD_DATE
            ,string ACT_TYPE
            , string PROSPECT_TYPE
            , string DEBTOR_TYPE
            , string CHANNELING
            , string EKSTERNAL
            , string REFERENSI
        )
        {
            this.CIF_NUMBER = CIF_NUMBER;
            this.LOAN_NUMBER = LOAN_NUMBER;
            this.UNIT_CODE = UNIT_CODE;
            this.DEBITOR_NAME = DEBITOR_NAME;
            this.PRODUCT_CODE = PRODUCT_CODE;
            this.CURRENT_OS = CURRENT_OS;
            this.CURRENT_INSTALLMENT = CURRENT_INSTALLMENT;
            this.OFFER_PLAFON = OFFER_PLAFON;
            this.OFFER_INSTALLMENT = OFFER_INSTALLMENT;
            this.OFFER_INTEREST = OFFER_INTEREST;
            this.OFFER_TENOR = OFFER_TENOR;
            this.OFFER_FRESH_MONEY = OFFER_FRESH_MONEY;
            this.PRIORITY = PRIORITY;
            this.JENIS_USAHA = JENIS_USAHA;
            this.KODYA_KAB_BUSINESS = KODYA_KAB_BUSINESS;
            this.KECAMATAN_BUSINESS = KECAMATAN_BUSINESS;
            this.KELURAHAN_BUSINESS = KELURAHAN_BUSINESS;
            this.ZIP_CODE_BUSINESS = ZIP_CODE_BUSINESS;
            this.ADDRESS_BUSINESS = ADDRESS_BUSINESS;
            this.MOBILE_PHONE = MOBILE_PHONE;
            this.OFFICE_PHONE = OFFICE_PHONE;
            this.RESIDENTIAL_PHONE = RESIDENTIAL_PHONE;
            this.DATE_VISIT_PLAN = DATE_VISIT_PLAN;
            this.ENTRY_BY = ENTRY_BY;
            this.ENTRY_DATE = ENTRY_DATE;
            this.UPDATE_BY = UPDATE_BY;
            this.UPDATE_DATE = UPDATE_DATE;
            this.IS_DOWNLOADED = IS_DOWNLOADED;
            this.DOWNLOAD_BY = DOWNLOAD_BY;
            this.DOWNLOAD_DATE = DOWNLOAD_DATE;
            this.ACT_TYPE = ACT_TYPE;
            this.PROSPECT_TYPE = PROSPECT_TYPE;
            this.DEBTOR_TYPE = DEBTOR_TYPE;
            this.CHANNELING = CHANNELING;
            this.EKSTERNAL = EKSTERNAL;
            this.REFERENSI = REFERENSI;
        }

        /// <summary>
        /// for assigment topup
        /// </summary>
        public TopUpInfo(string CIF_NUMBER, string LOAN_NUMBER, string UNIT_CODE, string DEBITOR_NAME
                , string PRODUCT_CODE, double CURRENT_OS, double CURRENT_INSTALLMENT, double OFFER_PLAFON
                , double OFFER_INSTALLMENT, string OFFER_INTEREST, Int16 OFFER_TENOR, double OFFER_FRESH_MONEY
                , string PRIORITY, string JENIS_USAHA, string KODYA_KAB_BUSINESS, string KECAMATAN_BUSINESS
                , string KELURAHAN_BUSINESS, string ZIP_CODE_BUSINESS, string ADDRESS_BUSINESS
                , string MOBILE_PHONE, string OFFICE_PHONE, string RESIDENTIAL_PHONE, DateTime DATE_VISIT_PLAN
                , string PROSPECT_TYPE, string DEBTOR_TYPE, string CHANNELING, string EKSTERNAL, string REFERENSI)
        {
            this.CIF_NUMBER = CIF_NUMBER;
            this.LOAN_NUMBER = LOAN_NUMBER;
            this.UNIT_CODE = UNIT_CODE;
            this.DEBITOR_NAME = DEBITOR_NAME;
            this.PRODUCT_CODE = PRODUCT_CODE; 
            this.CURRENT_OS = CURRENT_OS; 
            this.CURRENT_INSTALLMENT = CURRENT_INSTALLMENT; 
            this.OFFER_PLAFON = OFFER_PLAFON;
            this.OFFER_INSTALLMENT = OFFER_INSTALLMENT; 
            this.OFFER_INTEREST = OFFER_INTEREST;
            this.OFFER_TENOR = OFFER_TENOR;
            this.OFFER_FRESH_MONEY = OFFER_FRESH_MONEY;
            this.PRIORITY = PRIORITY;
            this.JENIS_USAHA = JENIS_USAHA;
            this.KODYA_KAB_BUSINESS = KODYA_KAB_BUSINESS;
            this.KECAMATAN_BUSINESS = KECAMATAN_BUSINESS;
            this.KELURAHAN_BUSINESS = KELURAHAN_BUSINESS;
            this.ZIP_CODE_BUSINESS = ZIP_CODE_BUSINESS;
            this.ADDRESS_BUSINESS = ADDRESS_BUSINESS;
            this.MOBILE_PHONE = MOBILE_PHONE;
            this.OFFICE_PHONE = OFFICE_PHONE;
            this.RESIDENTIAL_PHONE = RESIDENTIAL_PHONE;
            this.DATE_VISIT_PLAN = DATE_VISIT_PLAN;
            this.PROSPECT_TYPE = PROSPECT_TYPE; 
            this.DEBTOR_TYPE = DEBTOR_TYPE;
            this.CHANNELING = CHANNELING; 
            this.EKSTERNAL = EKSTERNAL;
            this.REFERENSI = REFERENSI;
        }

        public string CIF_NUMBER { get; set; }
        public string LOAN_NUMBER { get; set; }
        public string UNIT_CODE { get; set; }
        public string DEBITOR_NAME { get; set; }
        public string PRODUCT_CODE { get; set; }
        public double CURRENT_OS { get; set; }
        public double CURRENT_INSTALLMENT { get; set; }
        public double OFFER_PLAFON { get; set; }
        public double OFFER_INSTALLMENT { get; set; }
        public string OFFER_INTEREST { get; set; }
        public Int16 OFFER_TENOR { get; set; }
        public double OFFER_FRESH_MONEY { get; set; }
        public string PRIORITY { get; set; }
        public string JENIS_USAHA { get; set; }
        public string KODYA_KAB_BUSINESS { get; set; }
        public string KECAMATAN_BUSINESS { get; set; }
        public string KELURAHAN_BUSINESS { get; set; }
        public string ZIP_CODE_BUSINESS { get; set; }
        public string ADDRESS_BUSINESS { get; set; }
        public string MOBILE_PHONE { get; set; }
        public string OFFICE_PHONE { get; set; }
        public string RESIDENTIAL_PHONE { get; set; }
        public DateTime DATE_VISIT_PLAN { get; set; }
        public string ENTRY_BY { get; set; }
        public DateTime ENTRY_DATE { get; set; }
        public string UPDATE_BY { get; set; }
        public DateTime UPDATE_DATE { get; set; }
        public bool IS_DOWNLOADED { get; set; }
        public string DOWNLOAD_BY { get; set; }
        public DateTime DOWNLOAD_DATE { get; set; }
        public string ACT_TYPE { get; set; }
        public string PROSPECT_TYPE { get; set; }
        public string DEBTOR_TYPE { get; set; }
        public string CHANNELING { get; set; }
        public string EKSTERNAL { get; set; }
        public string REFERENSI { get; set; }
        public string IS_ASSIGNED { get; set; }
        public string ASSIGNED_TO { get; set; }

        public override string ToString()
        {
            return
            CIF_NUMBER + " - " +
            LOAN_NUMBER + " - " +
            UNIT_CODE + " - " +
            DEBITOR_NAME + " - " +
            PRODUCT_CODE + " - " +
            CURRENT_OS.ToString() + " - " +
            CURRENT_INSTALLMENT.ToString() + " - " +
            OFFER_PLAFON.ToString() + " - " +
            OFFER_INSTALLMENT.ToString() + " - " +
            OFFER_INTEREST + " - " +
            OFFER_TENOR.ToString() + " - " +
            OFFER_FRESH_MONEY.ToString() + " - " +
            PRIORITY + " - " +
            JENIS_USAHA + " - " +
            KODYA_KAB_BUSINESS + " - " +
            KECAMATAN_BUSINESS + " - " +
            KELURAHAN_BUSINESS + " - " +
            ZIP_CODE_BUSINESS + " - " +
            ADDRESS_BUSINESS + " - " +
            MOBILE_PHONE + " - " +
            OFFICE_PHONE + " - " +
            RESIDENTIAL_PHONE + " - " +
            DATE_VISIT_PLAN.ToString("yyyy MMM dd hh:mm:ss") + " - " +
            ENTRY_BY + " - " +
            ENTRY_DATE.ToString("yyyy MMM dd hh:mm:ss") + " - " +
            UPDATE_BY + " - " +
            UPDATE_DATE.ToString("yyyy MMM dd hh:mm:ss") + " - " +
            IS_DOWNLOADED + " - " +
            DOWNLOAD_BY + " - " +
            DOWNLOAD_DATE.ToString("yyyy MMM dd hh:mm:ss");
        }

        public string ToString4Audit()
        {
            return
            "CIF_NUMBER: " + CIF_NUMBER +
            ", LOAN_NUMBER: " + LOAN_NUMBER +
            ", UNIT_CODE: " + UNIT_CODE +
            ", DEBITOR_NAME: " + DEBITOR_NAME +
            ", PRODUCT_CODE: " + PRODUCT_CODE +
            ", CURRENT_OS: " + CURRENT_OS.ToString() +
            ", CURRENT_INSTALLMENT: " + CURRENT_INSTALLMENT.ToString() +
            ", OFFER_PLAFON: " + OFFER_PLAFON.ToString() +
            ", OFFER_INSTALLMENT: " + OFFER_INSTALLMENT.ToString() +
            ", OFFER_INTEREST: " + OFFER_INTEREST +
            ", OFFER_TENOR: " + OFFER_TENOR.ToString() +
            ", OFFER_FRESH_MONEY: " + OFFER_FRESH_MONEY.ToString() +
            ", PRIORITY: " + PRIORITY +
            ", JENIS_USAHA: " + JENIS_USAHA +
            ", KODYA_KAB_BUSINESS: " + KODYA_KAB_BUSINESS +
            ", KECAMATAN_BUSINESS: " + KECAMATAN_BUSINESS +
            ", KELURAHAN_BUSINESS: " + KELURAHAN_BUSINESS +
            ", ZIP_CODE_BUSINESS: " + ZIP_CODE_BUSINESS +
            ", ADDRESS_BUSINESS: " + ADDRESS_BUSINESS +
            ", MOBILE_PHONE: " + MOBILE_PHONE +
            ", OFFICE_PHONE: " + OFFICE_PHONE +
            ", RESIDENTIAL_PHONE: " + RESIDENTIAL_PHONE +
            ", DATE_VISIT_PLAN: " + DATE_VISIT_PLAN.ToString("yyyy MMM dd hh:mm:ss") +
            ", ENTRY_BY: " + ENTRY_BY +
            ", ENTRY_DATE: " + ENTRY_DATE.ToString("yyyy MMM dd hh:mm:ss") +
            ", UPDATE_BY: " + UPDATE_BY +
            ", UPDATE_DATE: " + UPDATE_DATE.ToString("yyyy MMM dd hh:mm:ss") +
            ", IS_DOWNLOADED: " + IS_DOWNLOADED +
            ", DOWNLOAD_BY: " + DOWNLOAD_BY +
            ", DOWNLOAD_DATE: " + DOWNLOAD_DATE.ToString("yyyy MMM dd hh:mm:ss");
        }
    }
}
